package com.crm.service.impl;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.springframework.transaction.annotation.Transactional;

import com.crm.dao.LinkManDao;
import com.crm.domain.Customer;
import com.crm.domain.LinkMan;
import com.crm.domain.PageBean;
import com.crm.service.LinkManService;

@Transactional
public class LinkManServiceImpl implements LinkManService {
	// 注入dao
	private LinkManDao linkManDao;
	public void setLinkManDao(LinkManDao linkManDao) {
		this.linkManDao = linkManDao;
	}
	
	@Override
	// 分页查询联系人
	public PageBean<LinkMan> findByPage(DetachedCriteria detachedCriteria, Integer currPage, Integer pageSize) {
		// 1. new一个pageBean
		PageBean<LinkMan> pageBean = new PageBean<LinkMan>();
		// 2. 设置当前页数
		pageBean.setCurrPage(currPage);
		// 3. 设置页面大小
		pageBean.setPageSize(pageSize);
		// 4. 设置总记录数，通过查询获得
		Integer totalCount = linkManDao.findCount(detachedCriteria);
		pageBean.setTotalCount(totalCount);
		// 5. 计算总页数,总页数=总记录数/页面大小（向下取整）
		Double tc = totalCount.doubleValue();
		// 向下取整
		Double num = Math.ceil(tc/pageSize);
		pageBean.setTotalPage(num.intValue());
		// 6. 起始位置
		Integer begin = ( currPage - 1 ) * pageSize;
		// 7. 分页查询
		List<LinkMan> list = linkManDao.findByPage(detachedCriteria, begin, pageSize);
		// 8. 封装数据
		pageBean.setList(list);
		// 9. 返回结果
		return pageBean;
	}

	@Override
	// 保存联系人
	public void save(LinkMan linkMan) {
		linkManDao.save(linkMan);
		
	}

	@Override
	// 根据id查询联系人
	public LinkMan findById(long lkm_id) {
		return linkManDao.findById(lkm_id);
	}

	@Override
	// 删除联系人
	public void delete(LinkMan linkMan) {
		linkManDao.delete(linkMan);
	}

	@Override
	// 保存修改后的联系人信息
	public void update(LinkMan linkMan) {
		linkManDao.update(linkMan);
		
	}
	
}
